const fp = require('lodash/fp')
// 数据
// horsepower 马力, dollar_value 价格, in_stock 库存
const cars = [
    {
        name: 'Ferrari FF',
        horsepower: 660,
        dollar_value: 700000,
        in_stock: true
    },
    {
        name: 'Spyker C12 Zagato',
        horsepower: 650,
        dollar_value: 648000,
        in_stock: false
    },
    {
        name: 'Jaguar XKR-S',
        horsepower: 550,
        dollar_value: 132000,
        in_stock: false
    },
    {
        name: 'Audi R8',
        horsepower: 625,
        dollar_value: 114200,
        in_stock: false
    },
    {
        name: 'Aston Martin One-7',
        horsepower: 750,
        dollar_value: 1850000,
        in_stock: true
    },
    {
        name: 'Pagani Huayara',
        horsepower: 700,
        dollar_value: 1300000,
        in_stock: true
    }
]

let _average = function (xs) {
    return fp.reduce(fp.add, 0, xs) / xs.length
} // <- 无需改动
// let averageDollarValue = function (cars) {
//     let dollar_values = fp.map(car => car.dollar_value, cars)
//     return _average(dollar_values)
// }


// 练习3：使用帮助函数 _average 重构 averageDollarValue，使用函数组合的方式实现
let averageDollarValue = fp.flowRight(_average, fp.map(car => car.dollar_value));
console.log(averageDollarValue(cars)); // 790700